[アップデート] Amazon Neptuneが東京リージョンで利用可能になりました!
こんにちは。サービスグループの武田です。
re:Invent 2017で発表されたグラフデータベース、Amazon Neptuneがついに東京リージョンで利用可能になりました。
Amazon Neptune is Now Available in the Asia Pacific (Tokyo) Region
今回のアナウンスで、Neptuneは次の9リージョンで利用可能となりました。
- US East (N. Virginia)
- US East (Ohio)
- US West (Oregon)
- Europe (Ireland)
- Europe (London)
- Europe (Frankfurt)
- Asia Pacific (Singapore)
- Asia Pacific (Sydney)
- Asia Pacific (Toyko)
さっそく東京リージョンで起動してみましたので、その様子をお届けします。
東京リージョンで起動してみた
マネジメントコンソールにログインしてAmazon Neptuneのページにアクセスしてみます。東京リージョンでアクセスできていますね。さっそくNeptuneを起動していきましょう。
バージョン、インスタンスクラス、Multi-AZは次のように設定しました。
DBインスタンスの識別子は welcome-neptune-to-tokyo
と入力し、[次へ]を押下。
VPC周りの設定はデフォルトの設定を流用します。
データベースの設定以降はすべてデフォルトのままです。最後に[Create database]を押下。
データベースの作成が始まります。
8分ほどで作成が完了しました。
Neptuneに接続してみる
せっかく起動できたので、Neptuneにアクセスもしてみましょう。VPCの外からはアクセスできないため、EC2インスタンスを起動し、そこからアクセスをしてみます(EC2の起動手順は省略します。Amazon Linux 2で作成しました)。
なおGremlinコンソールを使用してアクセスをしましたが、流れはドキュメントに書かれていますので、こちらも参考にしてください。
Gremlin コンソールを使用して Neptune DB インスタンスに接続する - Amazon Neptune
EC2インスタンスが起動できたらSSHで接続します(鍵とホスト名は自身の環境に合わせてください)。
$ ssh -i /path/to/aws-ec2.pem ec2-user@ec2-54-238-197-114.ap-northeast-1.compute.amazonaws.com
接続できたら、次にGremlinコンソールのセットアップをします。
$ sudo yum install -y java-1.8.0-devel $ wget https://archive.apache.org/dist/tinkerpop/3.3.2/apache-tinkerpop-gremlin-console-3.3.2-bin.zip $ unzip apache-tinkerpop-gremlin-console-3.3.2-bin.zip $ cd apache-tinkerpop-gremlin-console-3.3.2 $ wget https://www.amazontrust.com/repository/SFSRootCAG2.pem
接続情報をconf/neptune-remove.yaml
として定義します。hosts:
に定義しているホスト名は自身の環境に合わせてください。クラスターエンドポイントおよびインスタンスエンドポイントで接続確認できました。
$ vim conf/neptune-remote.yaml $ cat conf/neptune-remote.yaml hosts: [welcome-neptune-to-tokyo.cjjms3a2tkhy.ap-northeast-1.neptune.amazonaws.com] port: 8182 connectionPool: { enableSsl: true, trustCertChainFile: "SFSRootCAG2.pem"} serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { serializeResultToString: true }}
以上で準備は完了です!GremlinコンソールでNeptuneに接続してみましょう。
$ bin/gremlin.sh \,,,/ (o o) -----oOOo-(3)-oOOo----- plugin activated: tinkerpop.server plugin activated: tinkerpop.utilities plugin activated: tinkerpop.tinkergraph gremlin> :remote connect tinkerpop.server conf/neptune-remote.yaml ==>Configured welcome-neptune-to-tokyo.cjjms3a2tkhy.ap-northeast-1.neptune.amazonaws.com/172.31.7.127:8182 gremlin> :remote console ==>All scripts will now be sent to Gremlin Server - [welcome-neptune-to-tokyo.cjjms3a2tkhy.ap-northeast-1.neptune.amazonaws.com/172.31.7.127:8182] - type ':remote console' to return to local mode gremlin> g.V().limit(1) gremlin> g.addV('person').property('name', 'devio') ==>v[38b43ede-2d3e-3a04-d692-4fce0b3265aa] gremlin> g.V().hasLabel('person') ==>v[38b43ede-2d3e-3a04-d692-4fce0b3265aa] gremlin> :exit
いい感じに動いてますね!
まとめ
昨年のre:Invent 2018でもさまざまなデータベース新サービスがリリースされました。NoSQLは適材適所で使い分けていくものですので、ユースケースなどを理解してうまく使っていきたいですね。